XML-QL - Extensible Markup Language-Query LAnguage
XSL - Extensible Style Language
WML - Wireless Markup Language
БД - База Данных
СУБД - Система Управления Базами Данных
Глоссарий состоит из "словарных статей". После заголовка каждой статьи
и, возможно, расшифровки акронима следуют ссылки на официальные материалы.
Далее перечислены основные особенности рассматриваемого понятия,
снабженные комментариями и иногда примерами.
Синтаксически корректный XML (Well-formed XML)
XML -
Extensible Markup Language (расширяемый язык разметки)
разработан Rick Jelliffe, Academia Sinica Computing Centre
язык для проверки правильности утверждений о данных, использующийся
для верификации соответствия данных бизнес-правилам
подход к верификации экземпляров документов, отличающийся от
использования схем
использование схемы основано на грамматике
процесс верификации сверяет экземпляр с грамматикой
отношения родитель/потомок описаны в модели содержимого
схематрон основан на наборе утверждений, описывающих ожидаемое
содержимое экземпляра
схематрон проверяет экземпляр на соответствие набору правил
правила могут включать произвольные отношения наследования и
ветвления
возможно кодирование бизнес-правил, относящихся к структурной
целостности экземпля
при формулировании правил используются выражения языка XPath
предоставляет возможность связывать правила друг с другом
правила могут зависеть от истинности или ложности других правил
схемы, основанные на грамматике, не предоставляют таких
возможностей
Пример экземпляра структурно-корректного XML, которому Схематрон
необходим для проверки бизнес-правил:
Листинг 3
<?xml version="1.0"?> <!DOCTYPE thing [ <!ELEMENT thing ( a | b )> <!ATTLIST thing content ( a | b ) #REQUIRED> <!ELEMENT a (#PCDATA)> <!ELEMENT b (#PCDATA)>
]><thing content="a"><b>test</b></thing>
Примечания:
Существуют различные Схематроны, обеспечивающие различные формы
отчетов
Результат использования Схематрона представляет собой стиль для
проверки и отчета
Стиль можно использовать для любого количества проверок без
перегенерации
Пространства имен
Обеспечивают разделение словарей элементов и атрибутов
описывает простой метод для квалификации имен элементов и атрибутов,
используемых в XML-документах
позволяет в данном документе использовать одно и тоже имя типа
элемента из различных словарей
рассмотрим два словаря, каждый из которых определяет тип элемента,
обозначаемый как <set>, причем с разной семантикой
в языке разметки SVG элемент <set> позволяет присвоить
значение в заданном контексте
в языке разметки MathML <set> ссылается на набор
конструкций, представляющих собой множество
для любого документа, в котором необходимо смешивать элементы двух
словарей, может возникнуть необходимость использования элементов с
одинаковыми именами
без пространства имен приложение окажется не в состоянии
определить, какая из конструкций используется
префикс в имени элемента определяет пространство имен, в котором
этот элемент определен
<svg:set>
<math:set>
составные имена лексически анализируются как имена XML
использование двоеточия определено рекомендацией по пространству
имен
Ассоциация значений URI
префиксы типов имен элементов ассоциируются с идентификаторами
ресурсов (URI) вне зависимости от существования какого-либо ресурса по
этому URI
соблюдение определенных правил предотвращает конфликты URI при
ассоциировании URI
не предполагается наличия какой бы то ни было информацию по данному
URI
заметим, хотя это и за рамками рекомендации по пространству имен,
что в рекомендации RDF, тем не менее, принято обращение за информацией
по указанному URI.
согласно рекомендации URI используется исключительно для устранения
неоднозначности между идентичными неквалифицированными элементами
различных словарей
Выбор префикса произволен и может быть любым лексически разрешенным
именем
выбранное имя не обязано соответствовать назначению элемента (хотя
это и повышает ясность разметки)
никакая рекомендация не накладывает ограничений на выбор имен
процессор XML заменяет префикс на ассоциированный URI:
в вышеприведенном скобки "{" и "}" служат только для выделения
ассоциированного URI
заметим, что, поскольку символы "/" не являются разрешенными в
рамках лексических правил имен, то прямое использование URI в метках
XML-документа не допускается
префикс представляет собой просто синтаксическое сокращение,
позволяющее не использовать длинные отличительные строчки.
ориентированный на работу с деревом документа, не зависящий от
платформы и языка программирования интерфейс, позволяющий программам
динамически разбирать и изменять содержимое, структуру и стиль
документов; содержит:
модель объектов для XML и HTML
стандартный интерфейс для манипулирования объектами
строится на трех слоях функциональности
ядро
базовые интерфейсы
интерфейсы для работы c XML
расширенные интерфейсы для работы с HTML
осуществляет узаконенное разграничение полномочий между
программистом и производителем
программист использует стандартный интерфейс и не нуждается в
знании конкретной реализации производителя
производитель поддерживает стандартный интерфейс ко внутренним
структурам данных без необходимости открывать закрытую информацию
Основные принципы:
документ представляет собой иерархию узлов
узлы можно собирать в список узлов, упорядоченный в естественном
порядке документа
узлы можно собирать в неупорядоченные множества
конкретная реализация интерфейса может строить на основе документов
деревья, списки и множества узлов
программист может манипулировать деревьями узлов, списками и
множествами узлов
specified - указатель на то, что значение атрибута явно задано
(true) или использует умолчание (false)
value - значение атрибута, доступное для изменения
Реализация на языке Java:
Листинг 8
public interface Attr extends Node { public String getName(); public boolean getSpecified(); public String getValue(); public void setValue(String value); }
Упрощенный программный интерфейс для XML (Simple API for XML,
SAX)